#define _ENABLE_EXTENDED_ALIGNED_STORAGE
#include <type_traits>
#include <iostream>

template<typename T, int N>
struct GetPackType {
  using type = typename std::aligned_storage<N * sizeof(T), N * sizeof(T)>::type;
};

int main() {
    using MyPack = GetPackType<int, 4>::type;
    std::cout << "Size of MyPack: " << sizeof(MyPack) << std::endl;
    std::cout << "Alignment of MyPack: " << alignof(MyPack) << std::endl;
    return 0;
}
